Type: Long Term Contract (2-3 years)
Location: Loveland, Colorado
Schedule: Hybrid (2 days onsite)
Hourly Rate: $60-$80/hour (depending on level of experience)
Position Overview
We are seeking a mid-to-senior level .NET Developer to help build new, modern backend services from the ground up. This role is ideal for someone with strong experience designing scalable APIs, microservices, and event-driven systems using modern .NET.
Our team is building new .NET services that will replace existing Java services, so experience understanding Java-based systems is a plus. The ideal candidate can work independently, collaborate well with cross-functional teams, mentor junior developers, and contribute to strong architecture and engineering practices.
Responsibilities
- Design, develop, and maintain new backend services, RESTful APIs, minimal APIs, and microservices using modern .NET and C#.
- Build scalable systems using Domain-Driven Design, event-driven architecture, and modern architecture patterns.
- Design services with clear domain boundaries, well-defined responsibilities, and maintainable business logic.
- Develop data access layers using Entity Framework, code-first development, migrations, and modern ORM practices.
- Work with relational and NoSQL databases, including schema design, indexing, relationships, data modeling, and query performance.
- Implement dependency injection, middleware, configuration, logging, validation, authentication, and error handling using modern .NET practices.
- Integrate services with messaging and event platforms such as RabbitMQ, Kafka, Azure Service Bus, or similar technologies.
- Use Redis or other caching technologies to improve system performance and reliability.
- Containerize applications using Docker and support deployment into container-based environments.
- Create, publish, and consume NuGet packages, including packages hosted in private repositories.
- Apply object-oriented design, design patterns, SOLID principles, clean architecture, and clean code practices.
- Write and maintain unit tests and integration tests to ensure code quality and system stability.
- Participate in peer code reviews, technical design discussions, and architecture planning.
- Collaborate with product owners, QA, DevOps, architects, and other developers in an Agile/Scrum environment.
- Review or understand existing Java services to help design replacement .NET services with improved architecture, scalability, and maintainability.
- Create and maintain technical documentation for APIs, services, architecture decisions, and deployment processes.
- Mentor junior developers and contribute to team learning, engineering standards, and continuous improvement.
Required Skills and Experience
- 5+ years of professional software development experience with C# and .NET.
- Strong experience with .NET Core / modern .NET.
- Experience designing and developing RESTful APIs and minimal APIs.
- Strong understanding of dependency injection, middleware, configuration, logging, validation, and modern .NET application structure.
- Experience designing microservices, service boundaries, and distributed systems.
- Strong understanding of Domain-Driven Design concepts and how to apply them to new application development.
- Experience with event-driven architecture, messaging patterns, asynchronous processing, and distributed communication.
- Hands-on experience with Entity Framework, code-first development, migrations, and ORM best practices.
- Strong relational database knowledge, including indexes, foreign keys, constraints, normalization, and query optimization.
- Experience with NoSQL databases and data modeling concepts.
- Experience with architecture and design patterns such as Repository, Unit of Work, CQRS, Mediator, Factory, Strategy, and Clean Architecture.
- Experience with RabbitMQ, Kafka, Azure Service Bus, Redis, or similar technologies.
- Experience with Docker and containerized application development.
- Experience with Azure services and cloud-based application development.
- Experience creating, publishing, and consuming NuGet packages, including private package repositories.
- Strong understanding of SOLID principles, refactoring, testable code, and maintainable software design.
- Experience with automated testing using tools such as xUnit, NUnit, MSTest, Moq, or similar frameworks.
- Strong Git skills, including branching, pull requests, code reviews, and merge conflict resolution.
- Ability to work independently while communicating progress, risks, and blockers.
- Strong troubleshooting, problem-solving, and communication skills.
- Experience working in Agile/Scrum development teams.
Preferred Qualifications
- Java development experience or experience working with Java-based services.
- Experience replacing or re-platforming existing Java services with modern .NET services.
- Experience working in Linux environments, including basic shell commands, log review, scripting, and troubleshooting.
- Experience with Azure Functions, Azure App Services, AKS, Azure Container Apps, Key Vault, Application Insights, Azure DevOps, or Azure Service Bus.
- Experience with Kubernetes or container orchestration platforms.
- Experience with API gateways, service discovery, distributed tracing, and observability tools.
- Experience with CQRS, Event Sourcing, Outbox Pattern, Saga Pattern, and other distributed system patterns.
- Experience with OpenAPI/Swagger and API documentation standards.
- Experience with authentication and authorization using OAuth2, OpenID Connect, JWT, or Microsoft Identity.
- Experience with CI/CD pipelines using Azure DevOps, GitHub Actions, Jenkins, or similar tools.
- Experience with private artifact feeds such as Azure Artifacts, GitHub Packages, Nexus, or Artifactory.
- Healthcare IT experience is a plus.
- Experience with DICOM, HL7, PACS, RIS, or medical imaging systems is a plus.
Ideal Candidate
The ideal candidate is a strong backend .NET developer who enjoys building new systems, designing clean service boundaries, and solving complex distributed system problems. They understand that successful microservices require thoughtful architecture, clear domain ownership, reliable messaging, strong testing, and maintainable code.
This person is self-motivated, collaborative, eager to learn, and comfortable mentoring others. They are passionate about modern engineering practices and helping a team build high-quality software from the ground up.
All qualified applicants will receive consideration for employment without regard to race, color, national origin, age, ancestry, religion, sex, sexual orientation, gender identity, gender expression, marital status, disability, medical condition, genetic information, pregnancy, or military or veteran status. We consider all qualified applicants, including those with criminal histories, in a manner consistent with state and local laws, including the California Fair Chance Act, City of Los Angeles' Fair Chance Initiative for Hiring Ordinance, Los Angeles County Fair Chance Ordinance, and San Francisco Fair Chance Ordinance.